// pages/paySuccess/paySuccess.js
import { getOrderInfoApi, updateOrderApi } from '../../api/order'
Page({
  /**
   * 页面的初始数据
   */
  data: {
    orderId: '',
    orderInfo: {},
    entryType: ''
  },

  /**
   * 获取订单详情
   */
  async getOrderInfo() {
    const [err, info] = await getOrderInfoApi({
      orderId: this.data.orderId
    })
    if (err) return
    this.setData({
      orderInfo: info
    })
  },

  jumpOrderInfo() {
    if (this.data.entryType === 'cart') {
      wx.reLaunch({
        url: `/pages/orderList/orderList?state=2`
      })
    } else {
      wx.reLaunch({
        url: `/pages/orderInfo/orderInfo?id=${this.data.orderId}`
      })
    }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.setData(
      {
        orderId: options.orderId,
        entryType: options.entryType
      },
      () => {
        this.getOrderInfo()
      }
    )
  },

  /**
   * 修改订单
   */
  async updateOrder(info) {
    const {
      address,
      billStatus,
      orderListVO,
      isLogistics,
      noLogisticsNote,
      remark,
      reportStatus,
      specimenBackTime,
      specimenGoTime
    } = this.data.orderInfo
    const {
      buyerId,
      customerName,
      customerPhone,
      detectCompleteTime,
      id,
      orderNum,
      orderState,
      paymentTime,
      productId
    } = orderListVO
    const [err] = await updateOrderApi({
      address, // 详细地址
      billStatus, // 发票状态 发票状态：1-未申请；2-已申请；3-已开
      buyerId, // 客户id
      customerName, // 下单人姓名
      customerPhone, // 下单人手机号
      detectCompleteTime, // 检测完成时间
      id, // 订单id
      isLogistics, // 是否需要物流：0-否；1-是
      noLogisticsNote, // 无需物流原因
      orderNum, // 订单编号
      orderState, // 订单状态
      paymentTime, // 支付时间
      productId, // 产品id
      receiveAdress: '', // 收货地址
      receiveName: '', // 收货人姓名
      receivePhone: '', // 收货人手机号
      remark, // 订单备注
      reportStatus, // 检测报告状态
      specimenBackTime, // 收样时间
      specimenGoTime, // 发样时间
      updateBy: '', // 更新者
      updateTime: '', // 更新时间
      ...info
    })
    if (err) return [err, null]
    this.getOrderInfo()
    return [undefined, 'success']
  },

  /**
   * 无需物流提交回调
   */
  async noCarSubmit(e) {
    await this.updateOrder({
      isLogistics: 0,
      noLogisticsNote: e.detail,
      orderState: 3
    })
    this.jumpOrderInfo()
  },

  /**
   * 提交订单回调
   */
  async submitLogisticsSuccess(e) {
    console.log(e, '=====')
    await this.updateOrder({
      isLogistics: 1,
      orderState: 3
    })
    this.jumpOrderInfo()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {},

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {},

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {},

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {},

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {}
})
